/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pt.utl.ist.isr.livetrack.server.interfaces;

import java.util.Map;

/**
 *
 * @author David Miguel Antunes <davidmiguel [ at ] antunes.net>
 */
public interface Tracker {

    // === Actions ===
    public void start();

    public void stop();

    public void step();

    // === Status ===
    public boolean isRunning();

    public Map<Long, Blob> getTargets();

    public long getStepTime();

    public long getNSteps();

    // === Settings ===
    public int getBestKHypGenerated();

    public void setBestKHypGenerated(int bestKHypGenerated);

    public int getFeaturesDifferencePenalization();

    public void setFeaturesDifferencePenalization(int featuresDifferencePenalization);

    public double getFeaturesUpdateRate();

    public void setFeaturesUpdateRate(double featuresUpdateRate);

    public int getGateSize();

    public void setGateSize(int gateSize);

    public int getMaxDepth();

    public void setMaxDepth(int maxDepth);

    public int getMaxNumLeaves();

    public void setMaxNumLeaves(int maxNumLeaves);

    public int getMaxTimeUndetected();

    public void setMaxTimeUndetected(int maxTimeUndetected);

    public double getProbChangeZone();

    public void setProbChangeZone(double probChangeZone);

    public double getProbFalseAlarm();

    public void setProbFalseAlarm(double probFalseAlarm);

    public double getProbNewTarget();

    public void setProbNewTarget(double probNewTarget);

    public double getProbUndetected();

    public void setProbUndetected(double probUndetected);

    public int getHistogramMaxDepth();

    public void setHistogramMaxDepth(int histogramMaxDepth);

    public int getHistogramNBins();

    public void setHistogramNBins(int histogramNBins);
}
